/*!
 * \file WtHelper.cpp
 * \project	WonderTrader
 *
 * \author Wesley
 * \date 2020/03/30
 * 
 * \brief WonderTrader辅助工具类实现文件
 * 
 * \details 本文件实现了WonderTrader数据服务系统的辅助工具类WtHelper：
 *          - 实现路径和目录管理功能
 *          - 提供跨平台的当前工作目录获取
 *          - 管理模块目录路径配置
 *          - 提供路径标准化处理
 *          - 支持Windows和Unix系统
 */
#include "WtHelper.h"

#include "../Share/StrUtil.hpp"

#ifdef _MSC_VER
#include <direct.h>
#else	//UNIX
#include <unistd.h>
#endif

std::string WtHelper::_bin_dir;	/*!< 模块目录路径静态变量 */

/**
 * @brief 获取当前工作目录
 * @details 获取程序的当前工作目录路径，支持跨平台操作
 * @return const char* 当前工作目录路径
 * @note 使用静态变量缓存结果，避免重复系统调用
 */
const char* WtHelper::get_cwd()
{
	static std::string _cwd;
	if(_cwd.empty())
	{
		char   buffer[255];
#ifdef _MSC_VER
		// Windows系统使用_getcwd函数
		_getcwd(buffer, 255);
#else	//UNIX
		// Unix系统使用getcwd函数
		char* result = getcwd(buffer, 255);
		(void)result; // 避免未使用变量警告
#endif
		_cwd = buffer;
		// 标准化路径格式
		_cwd = StrUtil::standardisePath(_cwd);
	}	
	return _cwd.c_str();
}